#import <Foundation/Foundation.h>
{{#imports}}#import "{{import}}.h"
{{/imports}}
#import "{{classPrefix}}Api.h"

{{>licenceInfo}}



@interface {{classname}}: NSObject <{{classPrefix}}Api>

extern NSString* k{{classname}}ErrorDomain;
extern NSInteger k{{classname}}MissingParamErrorCode;

-(instancetype) initWithApiClient:({{classPrefix}}ApiClient *)apiClient NS_DESIGNATED_INITIALIZER;

{{#operations}}
{{#operation}}
/// {{{summary}}}
/// {{{notes}}}
///
/// {{#allParams}}@param {{paramName}} {{description}}{{^required}} (optional){{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}}
/// {{/allParams}}{{#responses}}
///  code:{{{code}}} message:"{{{message}}}"{{^-last}},{{/-last}}{{/responses}}
///
/// @return {{{returnType}}}{{^returnType}}void{{/returnType}}
-(NSURLSessionTask*) {{#vendorExtensions.x-objc-operationId}}{{vendorExtensions.x-objc-operationId}}{{/vendorExtensions.x-objc-operationId}}{{^vendorExtensions.x-objc-operationId}}{{nickname}}{{#hasParams}}With{{vendorExtensions.x-first-param-alt-name}}{{/hasParams}}{{^hasParams}}WithCompletionHandler: {{/hasParams}}{{/vendorExtensions.x-objc-operationId}}{{#allParams}}{{^-first}}
    {{paramName}}{{/-first}}: ({{{dataType}}}) {{paramName}}{{/allParams}}
    {{#hasParams}}completionHandler: {{/hasParams}}(void (^)({{#returnBaseType}}{{{returnType}}} output, {{/returnBaseType}}NSError* error)) handler;

{{newline}}
{{/operation}}
{{/operations}}

@end
